package com.eco
{
	import flash.display.Sprite;
	import flash.events.EventDispatcher;
	import flash.events.TimerEvent;
	import flash.utils.Timer;

	//创建敌人指令类，用于记录创建敌人的信息，并根据信息发出创建敌人的事件
	public class CreateEnemyCMD extends Sprite
	{
		private var enemyType:int;//创建的敌人的类型
		private var posX:Number;//物体的初始坐标
		private var posY:Number;
		
		private var timer:Timer;//计时器，用于触发创建事件
		
		public function CreateEnemyCMD(time:int, tp:int, px:Number, py:Number )
		{
			//建立一个新的创建指令，设定建立时间，类型，坐标
			if( tp == Enemy.ENEMY_SPEAR )
			{
				timer = new Timer( time, 0 );//如果是鱼叉就循环生成
			}
			else
			{
				timer = new Timer( time, 1 );//每个time时间触发一次，总共触发一次
			}
			
			enemyType = tp
			posX = px;
			posY = py;
			timer.addEventListener(TimerEvent.TIMER, DispatchCreateCMD );
			timer.start();
		}
		
		private function DispatchCreateCMD(e:TimerEvent ):void
		{
			
			var evt:CreateObjectEvent = new CreateObjectEvent(CreateObjectEvent.CREATE_ENEMY);//新建创建敌人事件
			evt.objectType = enemyType;//赋予敌人的类型
			evt.posX = posX + Math.floor( Math.random()*20 );//基于给定坐标生成小幅度随机的坐标
			evt.posY = posY + Math.floor( Math.random()*20 );
			dispatchEvent(evt);//把事件添加到调度流中
			if( enemyType != Enemy.ENEMY_SPEAR )
			{
				timer.stop();
				timer.removeEventListener( TimerEvent.TIMER, DispatchCreateCMD );//移除timer侦听
			}
				
		}
		
		public function Pause():void
		{
			timer.stop();
		}
		
		public function Continue():void
		{
			timer.start();
		}
		
		
	}
}